#include <cstdio>
const int N=100001;
const int M=10001;
int main()
{
    int num,cnt;
    int d[N]={0};
    int a[M][2];
    scanf("%d",&num);
    int i,j;
    int min;//记录最短路径长度
    int dist;
    for(i=0;i<num;++i)
    {
        scanf("%d",d+i);
    }
    scanf("%d",&cnt);
    for(i=0;i<cnt;++i)
    {
        scanf("%d",&a[i][0]);
        scanf("%d",&a[i][1]);
    }
    int flag1,flag2;
    for(i=0;i<cnt;++i)
    {//遍历查找min
        dist=0;
        if(a[i][0]<a[i][1])
        {//第一个标号较小的情况
            flag1=0;flag2=1;
        }else{
            flag1=1;flag2=0;
        }
            for(j=a[i][flag1]-1;j%num<a[i][flag2]-1;++j)
            {
                dist+=d[j];
            }
        min=dist;
        dist=0;
        for(j=a[i][flag2];(j-num-1)%num<a[i][flag1]-1;++j)
        {
            dist+=d[(j-1)%num];
        }
        if(dist<min)min=dist;
        printf("%d\n",min);
    }
}
